package com.ruoyi.wb.domain;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

import java.util.Date;
import java.util.List;

/**
 * 维保计划对象 wb_plan
 *
 * @author ruoyi
 * @date 2024-10-14
 */
@Data
@ApiModel(value = "WbPlan", description = "维保计划实体")
public class WbPlan extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** 主键 id */
    @ApiModelProperty(value = "主键 id")
    private Long id;

    /** 客户 id */
    @Excel(name = "客户 id")
    @ApiModelProperty(value = "客户 id")
    private Long clientId;

    /** 客户名 */
    @Excel(name = "客户名")
    @ApiModelProperty(value = "客户名")
    private String clientName;

    /** 客户地址 */
    @Excel(name = "客户地址")
    @ApiModelProperty(value = "客户地址")
    private String clientAddress;

    /** 计划类型(可多选)，月、季度、半年、整年 */
    @Excel(name = "计划类型(可多选)，月、季度、半年、整年")
    @ApiModelProperty(value = "计划类型(可多选)，月、季度、半年、整年")
    private String planType;

    /** 计划名称 */
    @Excel(name = "计划名称")
    @ApiModelProperty(value = "计划名称")
    private String planName;

    /** 计划开始时间(yyyy-MM-dd) */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "计划开始时间(yyyy-MM-dd)", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "计划开始时间(yyyy-MM-dd)")
    private Date planStartDate;

    /** 计划结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "计划结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "计划结束时间")
    private Date planEndDate;

    /** 实际执行维保开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "实际执行维保开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "实际执行维保开始时间")
    private Date execStartTime;

    /** 实际执行维保结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "实际执行维保结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "实际执行维保结束时间")
    private Date execEndTime;

    /** 合同 id */
    @Excel(name = "合同 id")
    @ApiModelProperty(value = "合同 id")
    private Long  contractId;

    /** 合同 名称 */
    private String  contractName;



    /** 维保单位 id */
    @Excel(name = "维保单位 id")
    @ApiModelProperty(value = "维保单位 id")
    private Long wbCompanyId;

    /** 维保单位 */
    @Excel(name = "维保单位")
    @ApiModelProperty(value = "维保单位")
    private String wbCompanyName;

    /** 任务数 */
    @Excel(name = "任务数")
    @ApiModelProperty(value = "任务数")
    private Long contentNum;

    /** 待执行数 */
    @Excel(name = "待执行数")
    @ApiModelProperty(value = "待执行数")
    private Long executory;

    /** 负责人 id */
    @Excel(name = "负责人 id")
    @ApiModelProperty(value = "负责人 id")
    private String projectPrincipalId;

    /** 负责人项目 */
    @Excel(name = "负责人项目")
    @ApiModelProperty(value = "负责人项目")
    private String projectPrincipalName;

    /** 技术负责人 id */
    @Excel(name = "技术负责人 id")
    @ApiModelProperty(value = "技术负责人 id")
    private Long technololyPrincipalId;

    /** 技术负责人姓名 */
    @Excel(name = "技术负责人姓名")
    @ApiModelProperty(value = "技术负责人姓名")
    private String technololyPrincipalName;

    /** 操作者 id */
    @Excel(name = "操作者 id")
    @ApiModelProperty(value = "操作者 id")
    private Long operaterId;

    /** 操作者姓名 */
    @Excel(name = "操作者姓名")
    @ApiModelProperty(value = "操作者姓名")
    private String operaterName;

    /** 执行状态 */
    @Excel(name = "执行状态")
    @ApiModelProperty(value = "执行状态 0待开始 1进行中 2已提交 3审核中 4驳回 5已维保 6已完成")
    private Integer execStatus;

    /** 审核状态 */
    @Excel(name = "审核状态")
    @ApiModelProperty(value = "审核状态 0待审核 1审核中 2已审核 3驳回")
    private Integer auditStatus;

    /** 完成时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "完成时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "完成时间")
    private Date finishTime;

    /** 凭条 */
    @Excel(name = "凭条")
    @ApiModelProperty(value = "凭条")
    private String entrySlip;

    /** 现场照片 */
    @Excel(name = "现场照片")
    @ApiModelProperty(value = "现场照片")
    private String sitePhoto;

    /** 删除状态(1 存在，2 删除) */
    @ApiModelProperty(value = "删除状态(1 存在，2 删除)")
    private Long delFlag;

    @Excel(name = "消防师 id")
    @ApiModelProperty(value = "消防师 id")
    private Long fireFightingId;

    /** 操作者姓名 */
    @Excel(name = "消防师姓名")
    @ApiModelProperty(value = "消防师姓名")
    private String fireFightingName;

    @Excel(name = "工程师 id")
    @ApiModelProperty(value = "工程师 id")
    private Long engineerId;

    /** 操作者姓名 */
    @Excel(name = "工程师姓名")
    @ApiModelProperty(value = "工程师姓名")
    private String engineerName;

    @ApiModelProperty(value = "当前人是否已审核过")
    private boolean flag = true;

    @ApiModelProperty(value = "角色名称")
    private List<String>roleName;

    /** 检测报告 */
    @ApiModelProperty(value = "检测报告")
    private String examiningReport;

    /** 消防师签名 */
    @ApiModelProperty(value = "消防师签名")
    private String firemenSignature;

    /** 工程师签名 */
    @ApiModelProperty(value = "工程师签名")
    private String engineerSignature;

    /** 操作员签名 */
    @Excel(name = "操作员签名")
    private String operatorSignature;

    /**
     * 公司logo
     */
    private String commonLogo;

    /**
     * 公司印章
     */
    private String commonSeal;

    /**
     * 消防师私印
     */
    private String firemenPersonalSeal;

    /**
     * 工程师私印
     */
    private String engineerPersonalSeal;

    /** 是否下载报告  0未下载 1下载 */
    @ApiModelProperty(value = "是否下载报告  0未下载 1下载")
    private Long ifDownload;


    /** 其他 */
    @Excel(name = "其他")
    private String rests;

    /** 培训 */
    @Excel(name = "培训")
    private String train;

    /** 问题汇总 */
    @Excel(name = "问题汇总")
    private String collect;

    /** 材料清单 */
    @Excel(name = "材料清单")
    private String inventory;

    /** 建议方案 */
    @Excel(name = "建议方案")
    private String scheme;

    /** 设施名称 */
    @Excel(name = "设施名称")
    private String facilityName;

    /** 应用场所 */
    @Excel(name = "应用场所")
    private String applicationPlace;

    /** 检测类别 */
    @Excel(name = "检测类别")
    private String detectCategory;

    /** 应用场所地址 */
    @Excel(name = "应用场所地址")
    private String applicationPlaceAddr;

    /** 复检时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "复检时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date reinspectionTime;

    /** 联系电话 */
    @Excel(name = "联系电话")
    private String contactNumber;

    /** 备案编号 */
    @Excel(name = "备案编号")
    private String recordNumber;

    /** 备案时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "备案时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date filingTime;

    /** 设施列表 */
    @Excel(name = "设施列表")
    private String listOfFacilities;

    /** 检测编号 */
    @Excel(name = "检测编号")
    private String detectionNumber;

}